package com.tecnoin.tintconta.core.entities;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Cuenta implements Comparable<Cuenta>
{
	private int id = 0;
	
	private Rubro rubro = null;
	
	private Cuenta cuentaPadre = null;
	
	private String idCuentaPadre = null;
	
	private List<Clasificacion> clasificaciones = new ArrayList<Clasificacion>();
	
	/**
	 * @return the cuentasDependientes
	 */
	public Map<String, Cuenta> getCuentasDependientes() {
		return cuentasDependientes;
	}

	/**
	 * @param cuentasDependientes the cuentasDependientes to set
	 */
	public void setCuentasDependientes(Map<String, Cuenta> cuentasDependientes) {
		this.cuentasDependientes = cuentasDependientes;
	}

	private Map<String, Cuenta> cuentasDependientes = new HashMap<String, Cuenta>();
	
	/**
	 * @return the clasificaciones
	 */
	public List<Clasificacion> getClasificaciones() {
		return clasificaciones;
	}

	/**
	 * @param clasificaciones the clasificaciones to set
	 */
	public void setClasificaciones(List<Clasificacion> clasificaciones) {
		this.clasificaciones = clasificaciones;
	}

	/**
	 * @return the idCuentaPadre
	 */
	public String getIdCuentaPadre() {
		return idCuentaPadre;
	}

	/**
	 * @param idCuentaPadre the idCuentaPadre to set
	 */
	public void setIdCuentaPadre(String idCuentaPadre) {
		this.idCuentaPadre = idCuentaPadre;
	}

	private String numero = null;
	
	private String nombre = null;
	
	private double saldo = 0.00;
	
	/**
	 * @return the id
	 */
	public int getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(int id) {
		this.id = id;
	}

	/**
	 * @return the rubro
	 */
	public Rubro getRubro() {
		return rubro;
	}

	/**
	 * @param rubro the rubro to set
	 */
	public void setRubro(Rubro rubro) {
		this.rubro = rubro;
	}

	/**
	 * @return the cuentaPadre
	 */
	public Cuenta getCuentaPadre() {
		return cuentaPadre;
	}

	/**
	 * @param cuentaPadre the cuentaPadre to set
	 */
	public void setCuentaPadre(Cuenta cuentaPadre) {
		this.cuentaPadre = cuentaPadre;
	}

	/**
	 * @return the numero
	 */
	public String getNumero() {
		return numero;
	}

	/**
	 * @param numero the numero to set
	 */
	public void setNumero(String numero) {
		this.numero = numero;
	}

	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}

	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * @return the saldo
	 */
	public double getSaldo() {
		return saldo;
	}

	/**
	 * @param saldo the saldo to set
	 */
	public void setSaldo(double saldo) {
		this.saldo = saldo;
	}

	/**
	 * @return the estado
	 */
	public String getEstado() {
		return estado;
	}

	/**
	 * @param estado the estado to set
	 */
	public void setEstado(String estado) {
		this.estado = estado;
	}

	private String estado = null;

	@Override
	public int compareTo(Cuenta o) 
	{
		String cuentaComparar = o.getNombre();
		return cuentaComparar.compareTo(getNombre());
	}
}